import { AxisDataCustom, TextStylesAttrs } from '@/store/model';


export interface XAxisAttrsData {
  show: boolean
  /** x 轴所在的 grid 的索引，默认位于第一个 grid。 */
  gridIndex?: number
  /** 在多个 x 轴为数值轴的时候，可以开启该配置项自动对齐刻度。只对'value'和'log'类型的轴有效。 */
  alignTicks?: boolean
  /** x轴的位置 
   * 注：若未将 xAxis.axisLine.onZero 设为 false , 则该项无法生效
  */
  position: 'top' | 'bottom'
  /** x轴偏移量 
   * 注：若未将 xAxis.axisLine.onZero 设为 false , 则该项无法生效
  */
  offset?: number
  /** 坐标轴类型 */
  type: 'category' | 'value' | 'time' | 'log'
  name: string
  /** 坐标轴名称显示位置 */
  nameLocation: 'start' | 'center' | 'end'
  nameTextStyle: Partial<TextStylesAttrs>
  /** 坐标轴名称与轴线之间的距离 */
  nameGap: number
  nameRotate?: number
  /** 名字截断 */
  nameTruncate?: {
    maxWidth: number
    ellipsis: string
  }
  /** 是否反向坐标轴 */
  inverse: boolean
  /** 坐标轴两边留白策略 */
  boundaryGap?: boolean | []
  /** 坐标轴刻度最小值 */
  min?: number
  /** 坐标轴刻度最大值 */
  max?: number
  /** 
   * 坐标轴的分割段数, 最后实际显示的段数会在这个基础上根据分割后坐标轴刻度显示的易读程度作调整
   * 在类目轴中无效。
   */
  splitNumber: number
  /** 类目数据 */
  data?: Array<AxisDataCustom | string>
}